The code on the previous page was just a setup to the real code
that is, coincidentally, on this page. Let's take a look at the
thumbnails_fn function that I briefly mentioned towards the end
of the last page:
Before I go over each line of the code, let me briefly
summarize what this function does. This function takes in a
number, k, as an argument from the loadXML function. This number
determines which image is being loaded, and this function is
only active while the for loop in the loadXML function is
still looping.
In that brief period of time, this function creates a new
movie clip for each new value of k that is passed to it, and
each new movie clip acts as a holder for each thumbnail image.
After each image is loaded, we then give it the onRollOver and
onRelease properties so that people can click on each image and
have it's larger counterpart be loaded in the top frame.
Let's dissect this code:
- thumbnail_mc.createEmptyMovieClip("t"+k,
thumbnail_mc.getNextHighestDepth());
I am creating a new empty movieclip called ("t"+k), inside
the movie clip thumbnail_mc. In order to do that, I'm using the
createEmptyMovieClip function that takes in the arguments for
instance name and depth provided I call the function from the
target movie clip: thumbnail_mc.
For example, movie clips created will be called t0, t1,
t2,...., tn where n is the value for k. Speaking of k, it
is the value that is passed to the thumbnails_fn function from
the loadXML function. More specifically, k is similar to the
variable p that is used throughout the photo gallery code.
Notice also that I don't give an arbitrary value for the
depth, but instead use the getNextHighestDepth() function to
ensure that each movie clip created into thumbnail_mc has a
different depth.
- tlistener
= new
Object();
This line is fairly straightforward. I simply declare the
tlistener variable as an object. No tricky alternative meanings
here.....I hope!
- image_mcl
= new
MovieClipLoader();
- image_mcl.addListener(tlistener);
- image_mcl.loadClip(thumbnails[k],
"thumbnail_mc.t"+k);
Let's jump a number of lines down and look at the last three lines. This
and the above tlistener definition are part of the
functioning for the MovieClipLoader() class that I assign to the
variable image_mcl.
Instead of explaining this, Macromedia's
documentation for the MovieClipLoader along with loadClip does a brilliant job of explaining this. They
even provide a good example. Therefore, I will skip explaining
the technical functioning of this function.
Before I leave, take note that thumbnail[k] references the
thumbnail array, and combined with the index position k, returns
the path to the image that needs to be loaded. The same path
that we earlier defined in our XML file.
- tlistener.onLoadInit
=
function(target_mc)
{
If you recall, tlistener is the variable that I declared as
an object earlier. Under the MovieClipLoader class, tlistener is
used to gauge the progress of the loaded images, and if the
image has both loaded AND initialized, any code contained here
is executed.
One last feature is that this function takes in the argument
target_mc, which is passed to it from the loadClip method:
"thumbnail_mc.t"+k,
of course, k is replaced with a number referencing the index
position of your array.
- target_mc._x
= hit_left._x+(target_mc._width+5)*k;
This line is responsible for placing each thumbnail in the
row format. Surprisingly, all of the above produces a simple
number - the x position of a particular thumbnail.
hit_left._x returns the x position of the hit_left movie
clip. This produces an offset so that your thumbnails don't load
at the very left-most boundary of your movie. You could
simply use a number such as 10 or 20 to produce the necessary
offset, but if you were to vary your thumbnail gallery beyond
what I created, then you'll have to go back and change the
numbers manually. In this case, simply moving the hit_left
movieclip to accommodate a different photo gallery will
automatically adjust the positioning of the thumbnails also.
(target_mc._width+5)*k
is the line that positions each thumbnail relative to the
preceding thumbnail. I offset the position of each future
thumbnail by the width of the current thumbnail. The value of k
places each thumbnail far away so that you don't overlap an
existing thumbnail. The value, 5, is simply the spacing between
each thumbnail, so you have a small gap between each image.
- target_mc.pictureValue
= k;
I am assigning the value k to a variable pictureValue in our
target_mc movie clip. Remember that target_mc varies depending
on the value of k in the loadClip action. This is a very
effective way of assigning a variable to a movieclip that you
can easily access later without worrying about variable scope
and other fun issues that I won't address at this time!
- target_mc.onRelease
=
function()
{
- p
= this.pictureValue-1;
- nextImage();
- };
- target_mc.onRollOver
=
function()
{
- this._alpha
= 50;
- thumbNailScroller();
- };
- target_mc.onRollOut
=
function()
{
- this._alpha
= 100;
- };
In these series of lines, I give each thumbnail the ability
to execute some code when clicked on or rolled over/out.
The code for onRelease is similar to pressing the Previous
and Next buttons in the photo gallery. The only difference is
that the number p varies, for you may skip over a few images
when clicking on an image to load after all. So, we need to determine the
value of p for each image. Luckily, if you remember, I assigned
each movie clip the value of k in the pictureValue
variable, and k is the variable p in disguise for this function!
For the onRollOver action, I set the alpha of the thumbnail
to 50. There is no real reason behind me doing that besides
informing the users that rolling over the thumbnail does
something similar to a button. I also call the
thumbNailScroller() function, and you will learn more about that
later.
When you roll out of the thumbnail, I return the alpha of the
movie clip back to 100. I'm trying to simulate the Over and
Default states of a button with this movie clip.
Alright, we are almost done. Let's now take a look at our
thumbNailScroller_fn function that moves the thumbnails left and
right depending on where your mouse cursor is. Onwards to the
next page!
|
page 5 of 7 |
|